Ревьюер

Проверено

Согласовано

Комментарий (замечания, предложения)

Неизвестный пользователь (malkov@micord.ru) 





Ранее взаимодействие с ЛК Реестра повесток осуществлялось через СМЭВ. Предыдущая схема взаимодействия описана тут. Переход на взаимодействие без участия СМЭВ осуществлялся в рамках задачи Невозможно найти сервер Jira для этого макроса. Причиной может быть конфигурация ссылки на приложение. .

Получение информации о рекруте 

При входе в Личный Кабинет Реестра Повесток в ЕРВУ отправляется запрос на получение данных о рекруте. Полученные данные отображаются на фронте ЛК РП. Взаимодействие происходит посредством Kafka.

Диаграмма взаимодействия

ervu-subpoena-registry
ervu-rp-summons-service
Ответ (id ЕРВУ или ошибка)
ervu.lkpr.person.search.response
ervu-person-registry
Запрос на получение
id ЕРВУ рекрута
ervu.lkpr.person.search.request
ЛК РП
(открытый контур)
Логин в реестрповесток.рф (ЕСИА)
Actor
Запрос на получение данных с id рекрута
ervu.recruit.info.request
Запрос на получение
перс.данных
ervu.person.info.
export.request

Ответ с перс.данными
ervu.person.info
export.response
Запрос на получение данных
по повесткам и врем.
мерам
ervu.subpoena.info.export.request
Ответ с данными по повесткам
и врем. мерам
ervu.subpoena.info.export.response
Ответ с данными рекрута в формате protobuf
ervu.recruit.info.response


Примеры сообщений в топиках

ervu.lkpr.person.search.request

Запрос Id рекрута в системе ЕРВУ

Пример сообщения Развернуть исходный код

ervu.lkpr.person.search.response

Ответ от ervu-person-registry с результатом поиска рекрута

Пример сообщения (Успех) Развернуть исходный код



Пример сообщения (Ошибка) Развернуть исходный код


ervu.recruit.info.request

Запрос от ЛК РП на получение информации по рекруту

Пример сообщения Развернуть исходный код

ervu.recruit.info.response

Ответ ЛК РП о данных рекрута

Ответ отдается в формате protobuf. Приложен файл генерации pojo классов для ответа в систему ЛКРП

ProtoSummonsResponseData (1).proto

ervu.person.info.export.request

Запрос в ervu-person-registry на получение перс. данных пользователя

Пример сообщения Развернуть исходный код

ervu.person.info.export.response

Ответ от ervu-person-registry с перс. данными пользователя

Пример сообщения Развернуть исходный код


ervu.subpoena.info.export.request

Запрос в ervu-subpoena-registry на получение информации о повестках и временных мерах пользователя

Пример сообщения Развернуть исходный код

ervu.subpoena.info.export.response

Ответ от ervu-subpoena-registry с информацией о повестках и временных мерах пользователя

Пример сообщения Развернуть исходный код


Алгоритм поиска рекрута

При авторизации пользователя первым в ЕРВУ летит запрос в топик ervu.lkpr.person.search.request. В запросе передаются данные пользователя ФИО, дата рождения, СНИЛС и паспорт. Запрос из топика вычитывает сервис ervu-person-registry, ищет пользователя в БД и отправляет в ответ ID рекрута в системе ЕРВУ в топик  ervu.lkpr.person.search.response.

Сейчас алгоритм поиска выглядит следующим образом:

Поиск по СНИЛС
Да
Гражданин найден (список не пустой)?
нет
нет
Данные ФИО, ДР совпадают?
Успех. Отправляем id рекрута
Отправить ошибку "Невозможно однозначно идентифицировать пользователя"
нет
да
Найдена 1 запись?
Поиск среди подходящих записей совпадения по ФИО и ДР
нет
Найдена 1 подходящая
запись?
Отправить ошибку "Невозможно однозначно идентифицировать пользователя"
Успех. Отправляем id рекрута
Отправить ошибку "Пользователь не найден"
Найденный пользователь
заблокирован (system_pgs_status пустой)?
Да
Нет
Отправить ошибку "Пользователь не найден"
да
да
Найденный пользователь
заблокирован (system_pgs_status пустой)?
да
нет
Отправить ошибку "Пользователь не найден"

Реализация алгоритма поиска происходила в рамках задачи Невозможно найти сервер Jira для этого макроса. Причиной может быть конфигурация ссылки на приложение. .

Возможные варианты ошибок:

код ошибки
Описание
01Пользователь не найден в системе
02Невозможно однозначно идентифицировать лицо
03Некорректный формат запроса


Ошибка с кодом 03 возвращается при невозможности произвести обработку запроса (неполный набор полей и пр.).


Позднее была согласована другая версия алгоритма идентификации гражданина:

Поиск по СНИЛС
Да
Гражданин найден (список не пустой)?
нет
да
нет
Данные ФИО, ДР, паспорта (проверяем все выданные паспорта) совпадают?
Успех. Отправляем id рекрута
Отправить ошибку "Невозможно однозначно идентифицировать пользователя"
нет
да
Найдена 1 запись?
Поиск среди подходящих записей совпадения по ФИО и ДР и паспорту
нет
да
Найдена 1 подходящая
запись?
Отправить ошибку "Невозможно однозначно идентифицировать пользователя"
Успех. Отправляем id рекрута
Поиск по паспорту (серия, номер, дата)
нет
да
Гражданин найден (список не пустой)?
Отправить ошибку "Пользователь не найден"
да
нет
Найдена 1 запись?
нет
да
У найденной записи есть ФИО,ДР и СНИЛС (отличный от поступившего)?
Успех. Отправляем id рекрута
Обновляем СНИЛС в карточке рекрута в ЕРВУ
Отправить ошибку "Невозможно однозначно идентифицировать пользователя"
Регистрация  инцидента
Инциденты
Регистрация  инцидента
Инциденты
Регистрация  инцидента
Инциденты

//Данный алгоритм пока не реализован

Диаграмма расположения сервисов

ervu-rp-summons-service
ervu-person-registry
ervu-subpoena-registry
ЛК РП
ervu-subpoena-registry
ervu-person-registry

ervu.recruit.info.resonse

ervu.recruit.info.request

ervu.person.info.export.request
ervu.person.export.response
ervu.subpoena.info.export.request
ervu.subpoena.export.response
ervu-rp-summons
S3
ervu.lkpr.person.search.request
ervu.lkpr.person.search.response


Получение выписки

Диаграмма взаимодействия

ЛК РП 
(открытый контур)
ervu-extract-from-registry-provider
формирование запроса в принтер
ervu-person-registry
ervu-subpoena-registry
ervu-decision-document-service
ervu-journal-service
printer
crypto-gateway
Entity Object
Запрос на получение выписки
ervu.extract.info.request
Сбор перс. данных 
ervu.person.info.export.request
Ответ с перс. данными
ervu.person.info.export.response
Сбор инф.о повестках и врем. мерах (если format = 2)
ervu.subpoena.info.export.request
Ответ с инф. о повестках и врем. мерах
ervu.supoena.info.export.response
Сбор инфы о решениях
ervu.decision.export.request
Ответ с решениями
ervu.decision.export.response
Сбор истории по рекруту и повесткам
ervu.object.history.request
Ответ с историей рекрута и повесток
ervu.object.history.response
Формирование выписки с шаблоном
REST /sync/print-sig/{input}/to/{output}
отключается
переменной
Сохранение архива в s3
Ответ в формате архива (pdf + sig)
Подписание выписки (REST)
Передача архива
Передача архива в формате protobuf


Также возможно получение выписки по рекруту, которого нет в системе ЕРВУ. Диаграмма взаимодействия в этом случае отличается: нет запросов в сервисы для получения информации о рекруте, выписка формируется на основании данных из запроса.

Запрос выписки по рекруту, которого нет в системе ЕРВУ:

ЛК РП
ervu-extract-from-registry-provider
printer
ervu.extract.empty.
request
Запрос выписки по рекруту,
 которого нет в ЕРВУ
printer.process.print
получение ПФ
printer.report
ervu.extract.info.
response

Примеры сообщений в топиках

ervu.extract.info.request

Запрос на получение выписки.

"formatExtractRegistry":1 - выписка из РВУ

"formatExtractRegistry":2 - выписка из РП

Пример сообщения Развернуть исходный код


ervu.extract.info.request

Ответ в ЛК РП с выпиской

Ответ отдается в формате protobuf. Приложен файл генерации pojo классов для ответа в систему ЛКРП

ProtoResponseData (1).proto


ervu.person.info.export.request

Запрос в ervu-person-registry на получение перс. данных пользователя

Пример сообщения Развернуть исходный код

ervu.person.info.export.response

Ответ от ervu-person-registry с перс. данными пользователя

Пример сообщения Развернуть исходный код


ervu.subpoena.info.export.request

Запрос в ervu-subpoena-registry на получение информации о повестках и временных мерах пользователя

Пример сообщения Развернуть исходный код

ervu.subpoena.info.export.response

Ответ от ervu-subpoena-registry с информацией о повестках и временных мерах пользователя

Пример сообщения Развернуть исходный код


ervu.decision.export.request

Запрос в ervu-decision-document-service на получение информации о принятых решениях

Пример сообщения Развернуть исходный код


ervu.decision.export.response

Ответ от ervu-decision-document-service с информацией о принятых решениях

Пример сообщения Развернуть исходный код

ervu.object.history.request

Запрос в ervu-object-history-service на получение истории по рекруту и повесткам

Пример сообщения Развернуть исходный код

ervu.object.history.response

Ответ от ervu-object-history-serviceс с информацией по истории по рекруту и повесткам

Пример сообщения Развернуть исходный код

printer.process.print

Запрос в printer на формирование ПФ

Пример сообщения Развернуть исходный код

printer.report

Ответ от printer с сформированной ПФ

Пример сообщения Развернуть исходный код

sig.generator.request

Запрос в sig-generator-service на получение подписи

Пример сообщения Развернуть исходный код

sig.generator.response

Ответ от sig-generator-service с подписью

Пример сообщения Развернуть исходный код

ervu.extract.empty.request

Запрос выписки по рекруту, которого нет в системе ЕРВУ

Пример сообщения Развернуть исходный код



Диаграмма расположения сервисов

ervu-extract-from-registry-provider
ervu-person-registry
ervu-subpoena-registry
ЛК РП
ervu-subpoena-registry
ervu-person-registry

ervu.extract.info.resonse

ervu.extract.info.request

ervu.person.info.export.request
ervu.person.export.response
ervu.subpoena.info.export.request
ervu.subpoena.export.response
ervu-extract-from-registry-provider
ervu-decision-document-service
ervu-decision-document-service
ervu.decision.export.request
ervu.decision.export.response
ervu-object-history-service
ervu-journal
ervu.object.history.request
ervu.object.histqory.response
printer
printer.process.print
printer.report
sig-generator-service
sig.generator.request
sig.generator.response
S3


Написать комментарий...